from celery import shared_task
from django.core.mail import send_mail
from django.conf import settings

"""
@shared_task 是 Celery 提供的一个装饰器，用于将一个函数标记为可被多个 Celery 应用共享的异步任务。被装饰的函数可以在不同的模块中调用，并由 Celery worker 异步执行。
简要说明如下：
使函数成为 Celery 任务
支持跨模块调用
可通过 delay() 异步触发执行


"""


@shared_task
def send_verification_email(email, code):
    """
    发送验证码邮件的异步任务
    """
    print(f"发送邮件给：{email}")
    print(f"验证码是：{code}")
    subject = '验证码'
    message = f'您的验证码是：{code}，5分钟内有效。'
    from_email = settings.EMAIL_HOST_USER
    recipient_list = [email]

    try:
        send_mail(
            subject=subject,
            message=message,
            from_email=from_email,
            recipient_list=recipient_list,
            fail_silently=False
        )
        return True
    except Exception as e:
        print(f"发送邮件失败: {str(e)}")
        return False